package ${parentName}.${moduleName}.core.application.convert;

import org.mapstruct.*;
import ${parentName}.${moduleName}.core.application.command.*;
import ${parentName}.${moduleName}.core.domain.aggregatemodel.*;

/**
* application Converter
*
* @author ${author}
* @since ${date}
*/

@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface AppConverter {
<#list tableNames as tableName>
    ${tableName} add${tableName}CommandTo${tableName}(Add${tableName}Command add${tableName}Command);

    ${tableName} update${tableName}CommandTo${tableName}(Update${tableName}Command update${tableName}Command);

    Query${tableName}Page query${tableName}PageCommandToQuery${tableName}Page(Query${tableName}PageCommand query${tableName}PageCommand);

    Query${tableName}ByOne query${tableName}ByOneCommandToQuery${tableName}ByOne(Query${tableName}ByOneCommand query${tableName}ByOneCommand);

    Query${tableName}List query${tableName}ListCommandToQuery${tableName}List(Query${tableName}ListCommand query${tableName}ListCommand);

    Del${tableName} del${tableName}CommandToDel${tableName}(Del${tableName}Command del${tableName}Command);

</#list>
}